package com.ruoyi.activiti.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.activiti.domain.BizLicence;
import com.ruoyi.activiti.domain.BizLicenceVo;
import org.activiti.engine.runtime.ProcessInstance;

import java.util.List;
import java.util.Map;

/**
 * @author li290
 * @description 针对表【biz_licence】的数据库操作Service
 * @createDate 2022-03-22 16:38:51
 */
public interface IBizLicenceService extends IService<BizLicence> {
    /**
     * 查询请假业务
     *
     * @param id 请假业务ID
     * @return 请假业务
     */
    public BizLicenceVo selectBizLicenceById(Long id);

    /**
     * 查询请假业务列表
     *
     * @param BizLicenceVo 请假业务
     * @return 请假业务集合
     */
    public List<BizLicenceVo> selectBizLicenceList(BizLicenceVo BizLicenceVo);

    /**
     * 新增请假业务
     *
     * @param BizLicenceVo 请假业务
     * @return 结果
     */
    public int insertBizLicence(BizLicenceVo BizLicenceVo);

    /**
     * 修改请假业务
     *
     * @param BizLicenceVo 请假业务
     * @return 结果
     */
    public int updateBizLicence(BizLicenceVo BizLicenceVo);

    /**
     * 批量删除请假业务
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteBizLicenceByIds(String ids);

    /**
     * 删除请假业务信息
     *
     * @param id 请假业务ID
     * @return 结果
     */
    public int deleteBizLicenceById(Long id);

    /**
     * 启动流程
     *
     * @param entity
     * @param applyUserId
     * @return
     */
    ProcessInstance submitApply(BizLicenceVo entity, String applyUserId, String key, Map<String, Object> variables);

    /**
     * 查询我的待办列表
     *
     * @param userId
     * @return
     */
    List<BizLicenceVo> findTodoTasks(BizLicenceVo leave, String userId);

    List<BizLicenceVo> findDoneTasks(BizLicenceVo bizLeaveVo, String userId);

}
